package com.itx.gatewayx.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * API访问日志
 *
 * @author itx
 */
@Data
@TableName("api_access_log")
public class ApiAccessLog implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 日志ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 请求路径
     */
    private String requestPath;

    /**
     * 目标服务
     */
    private String targetService;

    /**
     * 请求方法
     */
    private String method;

    /**
     * 请求IP
     */
    private String ip;

    /**
     * 操作地点
     */
    private String location;

    /**
     * 用户代理
     */
    private String userAgent;

    /**
     * 请求参数
     */
    private String requestParams;

    /**
     * 响应状态码
     */
    private Integer responseStatus;

    /**
     * 执行时间(ms)
     */
    private Long executeTime;

    /**
     * 访问用户ID
     */
    private Long userId;

    /**
     * 访问时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime accessTime;

    /**
     * 错误信息
     */
    private String errorMsg;
} 